Data communication applications and the use of data networks continue to grow at a rapid pace. Often networks used for data communication are shared, where different users and/or subscribers communicate data traffic over a common, or shared network. In such situations, data traffic management is typically used to implement predictable bandwidth allocation across the various traffic flows (e.g., among users). Different bandwidth allocation policies may be implemented using such traffic management techniques. For instance, bandwidth may be equally shared across the various traffic flows or bandwidth may be allocated based on an associated class of service for each traffic flow, as two possible examples.
One technique that is used to implement data traffic management in network devices (e.g., network switches or routers), is the use of hierarchical data queues and associated schedulers to control the flow of data traffic. In such an arrangement, respective data queues are used to process each individual traffic flow. For instance, data traffic for each individual user (subscriber) of an Internet Service Provider (ISP) would be processed in a dedicated queue. In such an approach, the associated schedulers then combine the separate traffic flows for each of the individual users (microflows) into one or more larger (e.g., higher bandwidth) traffic flows (macroflows). In such an approach, the hierarchical queues and schedulers are configured to implement bandwidth allocation policies, or perform traffic management. Implementing such bandwidth allocation policies includes deciding which data packets are to be forwarded on to their destination and which packets are to be dropped. These decisions are made, at least in part, based on the specific bandwidth allocation policies being implemented.
However, implementing traffic management using such a hierarchical queuing approach requires implementing complex queuing structures and associated schedulers in network devices that use such techniques to implement bandwidth allocation policies and, therefore, may be cost prohibitive. Further, in network devices that have limited data queuing resources, implementing traffic management using such an approach may be technically impracticable and/or highly inefficient.